//---------------------------------------------------------------------------------
// Copyright (c) 2011, Microsoft Corporation
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//---------------------------------------------------------------------------------

namespace Microsoft.ServiceBus.Samples
{
    using System;
    using System.ServiceModel;
    using System.Diagnostics;

    [ServiceBehavior(Name = "TraceService", Namespace = "http://samples.microsoft.com/ServiceModel/Relay/CloudTrace")]
    class TraceService : ITraceContract
    {
        #region ITraceContract Members

        public void Write(string message)
        {
            //Write to the Console
            Console.Write(message);

            //Also write to a local Trace Listener
            Trace.Write(message);
        }

        public void Write(string message, string category)
        {
            //Write to the Console
            Console.Write(message,category);

            //Also write to a local Trace Listener
            Trace.Write(message, category);
        }

        public void WriteLine(string message)
        {
            //Write to the Console
            Console.WriteLine(message);

            //Also write to a local Trace Listener
            Trace.WriteLine(message);
        }

        public void WriteLine(string message, string category)
        {
            //Write to the Console
            Console.WriteLine(message,category);

            //Also write to a local Trace Listener
            Trace.WriteLine(message, category);
        }

        public void Fail(string message)
        {
            //Write to the Console
            Console.WriteLine(String.Format("Fail: {0}", message));

            //Also write to a local Trace Listener
            Trace.Fail(message);
        }

        public void Fail(string message, string detailMessage)
        {
            //Write to the Console
            Console.WriteLine(String.Format("Fail: {0}, {1}", message,detailMessage));

            //Also write to a local Trace Listener
            Trace.Fail(message, detailMessage);
        }

        #endregion
    }
}
